<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  
  <title>DUO&#39;s blog</title>
  <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
  <meta property="og:type" content="website">
<meta property="og:title" content="DUO&#39;s blog">
<meta property="og:url" content="https://duo-1549910594.github.io/index.html">
<meta property="og:site_name" content="DUO&#39;s blog">
<meta property="og:locale" content="zh_CN">
<meta property="article:author" content="DUO">
<meta name="twitter:card" content="summary">
  
    <link rel="alternative" href="/atom.xml" title="DUO&#39;s blog" type="application/atom+xml">
  
  
    <link rel="icon" href="/http://oayoilchh.bkt.clouddn.com/2016/07/27/18:05:26%20">
  
  
      
<link rel="stylesheet" href="//cdn.bootcss.com/animate.css/3.5.0/animate.min.css">

  
  
<link rel="stylesheet" href="/css/style.css">

  <link rel="stylesheet" href="/font-awesome/css/font-awesome.min.css">
  <link rel="apple-touch-icon" href="/apple-touch-icon.png">
  
    
    
  
  
      <link rel="stylesheet" href="/fancybox/jquery.fancybox.css">
  
  <!-- 加载特效 -->
    <script src="/js/pace.js"></script>
    <link href="/css/pace/pace-theme-flash.css" rel="stylesheet" />
  <script>
      var yiliaConfig = {
          rootUrl: '/',
          fancybox: true,
          animate: true,
          isHome: true,
          isPost: false,
          isArchive: false,
          isTag: false,
          isCategory: false,
          open_in_new: false
      }
  </script>
<meta name="generator" content="Hexo 5.4.0"></head>
<body>
  <div id="container">
    <div class="left-col">
    <div class="overlay"></div>
<div class="intrude-less">
    <header id="header" class="inner">
        <script src="http://7.url.cn/edu/jslib/comb/require-2.1.6,jquery-1.9.1.min.js"></script>
        <a href="/" class="profilepic">
            
            <img lazy-src="img/p1543.jpg" class="js-avatar">
            
        </a>
        <hgroup>
          <h1 class="header-author"><a href="/"></a></h1>
        </hgroup>
        
        
            <form>
                <input type="text" class="st-default-search-input search" id="local-search-input" placeholder="搜索一下" autocomplete="off">
            </form>
            <div id="local-search-result"></div>
        
        
            <script type="text/javascript">
                (function() {
                    'use strict';
                    function getMatchData(keyword, data) {
                        var matchData = [];
                        for(var i =0;i<data.length;i++){
                            if(data[i].title.toLowerCase().indexOf(keyword)>=0) 
                                matchData.push(data[i])
                        }
                        return matchData;
                    }
                    var $input = $('#local-search-input');
                    var $resultContent = $('#local-search-result');
                    $input.keyup(function(){
                        $.ajax({
                            url: '/search.json',
                            dataType: "json",
                            success: function( json ) {
                                var str='<ul class=\"search-result-list\">';                
                                var keyword = $input.val().trim().toLowerCase();
                                $resultContent.innerHTML = "";
                                if ($input.val().trim().length <= 0) {
                                    $resultContent.empty();
                                    $('#switch-area').show();
                                    return;
                                }
                                var results = getMatchData(keyword, json);
                                if(results.length === 0){
                                    $resultContent.empty();
                                    $('#switch-area').show();
                                    return;
                                } 
                                for(var i =0; i<results.length; i++){
                                    str += "<li><a href='"+ results[i].url +"' class='search-result-title'>"+ results[i].title +"</a></li>";
                                }
                                str += "</ul>";
                                $resultContent.empty();
                                $resultContent.append(str);
                                $('#switch-area').hide();
                            }
                        });
                    });
                })();
            </script>
        
        
            <div id="switch-btn" class="switch-btn">
                <div class="icon">
                    <div class="icon-ctn">
                        <div class="icon-wrap icon-house" data-idx="0">
                            <div class="birdhouse"></div>
                            <div class="birdhouse_holes"></div>
                        </div>
                        <div class="icon-wrap icon-ribbon hide" data-idx="1">
                            <div class="ribbon"></div>
                        </div>
                        
                        
                        <div class="icon-wrap icon-me hide" data-idx="3">
                            <div class="user"></div>
                            <div class="shoulder"></div>
                        </div>
                        
                    </div>
                </div>
                <div class="tips-box hide">
                    <div class="tips-arrow"></div>
                    <ul class="tips-inner">
                        <li>菜单</li>
                        <li>标签</li>
                        
                        
                        <li>关于我</li>
                        
                    </ul>
                </div>
            </div>
        
        <div id="switch-area" class="switch-area">
            <div class="switch-wrap">
                <section class="switch-part switch-part1">
                    <nav class="header-menu">
                        <ul>
                        
                            <li><a  href="http://DUO-1549910594.github.io">博客首页</a></li>
                        
                            <li><a  href="/archives">文章归档</a></li>
                        
                            <li><a  href="/CTFStudy">学习导航</a></li>
                        
                            <li><a  href="/PWNABLE">PWNABLE</a></li>
                        
                            <li><a  href="/resume">个人简历</a></li>
                        
                        </ul>
                    </nav>
                    <nav class="header-nav">
                        <ul class="social">
                            
                                <a class="fl mail"  target="_blank" href="mailto:1549910594@qq.com" title="mail">mail</a>
                            
                                <a class="fl github"  target="_blank" href="https://github.com/DUO-1549910594" title="github">github</a>
                            
                                <a class="fl zhihu"  target="_blank" href="/" title="zhihu">zhihu</a>
                            
                                <a class="fl weibo"  target="_blank" href="/" title="weibo">weibo</a>
                            
                                <a class="fl rss"  target="_blank" href="/atom.xml" title="rss">rss</a>
                            
                        </ul>
                    </nav>
                </section>
                
                <section class="switch-part switch-part2">
                    <div class="widget tagcloud" id="js-tagcloud">
                        <a href="/tags/C%E8%AF%AD%E8%A8%80-static%E5%85%B3%E9%94%AE%E5%AD%97/" style="font-size: 10px;">C语言-static关键字</a> <a href="/tags/C%E8%AF%AD%E8%A8%80-typedef/" style="font-size: 10px;">C语言-typedef</a> <a href="/tags/C%E8%AF%AD%E8%A8%80-%E4%BD%8D%E7%9A%84%E6%93%8D%E7%BA%B5/" style="font-size: 10px;">C语言-位的操纵</a> <a href="/tags/C%E8%AF%AD%E8%A8%80-%E5%B7%A6%E5%80%BC%E5%92%8C%E5%8F%B3%E5%80%BC/" style="font-size: 10px;">C语言-左值和右值</a> <a href="/tags/C%E8%AF%AD%E8%A8%80%E7%9A%84%E5%8A%A0%E6%B7%B1-%E3%80%8AC%E5%92%8C%E6%8C%87%E9%92%88%E3%80%8B/" style="font-size: 10px;">C语言的加深--《C和指针》</a> <a href="/tags/%E6%99%B6%E4%BD%93%E7%AE%A1%E5%9F%BA%E7%A1%80/" style="font-size: 10px;">晶体管基础</a> <a href="/tags/%E6%BB%A4%E6%B3%A2%E5%99%A8/" style="font-size: 10px;">滤波器</a> <a href="/tags/%E8%BF%90%E7%AE%97%E6%94%BE%E5%A4%A7%E5%99%A8/" style="font-size: 10px;">运算放大器</a>
                    </div>
                </section>
                
                
                
                
                <section class="switch-part switch-part3">
                
                    <div id="js-aboutme">to pursuit the better self</div>
                </section>
                
            </div>
        </div>
    </header>
</div>

    </div>
    <div class="mid-col">
      <nav id="mobile-nav">
      <div class="overlay">
          <div class="slider-trigger"></div>
          <h1 class="header-author js-mobile-header hide"><a href="/" title="Me"></a></h1>
      </div>
    <div class="intrude-less">
        <header id="header" class="inner">
            <a href="/" class="profilepic">
                
                    <img lazy-src="/img/p1543.jpg" class="js-avatar">
                
            </a>
            <hgroup>
              <h1 class="header-author"><a href="/" title="Me"></a></h1>
            </hgroup>
            
            <nav class="header-menu">
                <ul>
                
                    <li><a href="http://DUO-1549910594.github.io">博客首页</a></li>
                
                    <li><a href="/archives">文章归档</a></li>
                
                    <li><a href="/CTFStudy">学习导航</a></li>
                
                    <li><a href="/PWNABLE">PWNABLE</a></li>
                
                    <li><a href="/resume">个人简历</a></li>
                
                <div class="clearfix"></div>
                </ul>
            </nav>
            <nav class="header-nav">
                <div class="social">
                    
                        <a class="mail" target="_blank" href="mailto:1549910594@qq.com" title="mail">mail</a>
                    
                        <a class="github" target="_blank" href="https://github.com/DUO-1549910594" title="github">github</a>
                    
                        <a class="zhihu" target="_blank" href="/" title="zhihu">zhihu</a>
                    
                        <a class="weibo" target="_blank" href="/" title="weibo">weibo</a>
                    
                        <a class="rss" target="_blank" href="/atom.xml" title="rss">rss</a>
                    
                </div>
            </nav>
        </header>                
    </div>
</nav>
      <div class="body-wrap">
  
    <article id="post-滤波器" class="article article-type-post" itemscope itemprop="blogPost">
  
    <div class="article-meta">
      <a href="/2022/04/17/%E6%BB%A4%E6%B3%A2%E5%99%A8/" class="article-date">
      <time datetime="2022-04-17T12:09:43.000Z" itemprop="datePublished">2022-04-17</time>
</a>
    </div>
  
  <div class="article-inner">
    
      <input type="hidden" class="isFancy" />
    
    
      <header class="article-header">
        
  
    <h1 itemprop="name">
      <a class="article-title" href="/2022/04/17/%E6%BB%A4%E6%B3%A2%E5%99%A8/">滤波器</a>
    </h1>
  

      </header>
      
    
    <div class="article-entry" itemprop="articleBody">
      
          
        <meta name="referrer" content="no-referrer">

<h1 id="运放组成的滤波器"><a href="#运放组成的滤波器" class="headerlink" title="运放组成的滤波器"></a>运放组成的滤波器</h1><h2 id="一、四元件低通滤波器"><a href="#一、四元件低通滤波器" class="headerlink" title="一、四元件低通滤波器"></a>一、四元件低通滤波器</h2><h3 id="1-SK低通滤波器"><a href="#1-SK低通滤波器" class="headerlink" title="1.SK低通滤波器"></a>1.SK低通滤波器</h3><p>SK电路原型：</p>
<p><img src="https://gitee.com/liang-xiqing/Picgo/raw/master/img/20220417202933.png"></p>
<p>低通滤波器Z1,Z2为电阻，Z3,Z4为电容，这里就是单纯的低通滤波，电路的增益为1。故我们需要考虑的就只有元件参数的选择。</p>
<p>对于特定的电路要求，比如已知截止频率和品质因数（可自己设定），来确定阻值和容值。<br>截止频率即当输出信号的幅值与输入信号的幅值的比值为根号二分之一时（半功率点），品质因数决定衰减速度。具体推导过程省略，这里直接给出结论。</p>
<p><img src="https://gitee.com/liang-xiqing/Picgo/raw/master/img/20220417203728.png" alt="传参函数"></p>
<p>截止频率与品质因数与电路元件的关系：<br><img src="https://gitee.com/liang-xiqing/Picgo/raw/master/img/20220417204019.png"></p>
<p>电阻值的选择：<br><img src="https://gitee.com/liang-xiqing/Picgo/raw/master/img/20220417203925.png"></p>
<p>电容的选择一般可以根据经验值确定，这里列出一个表格：<br><img src="https://gitee.com/liang-xiqing/Picgo/raw/master/img/20220417204912.png"><br>这个表格对于低通或者高通都是适用的。这里需要注意电容的选择必须要让式子有意义。<br>若两个电阻和电容都取相等的值，则变成了等阻容低通滤波器（贝塞尔滤波器，Q=0.5）；若使Z4=2*Z3（电容二倍关系），电阻阻值相等，则为易用性巴特沃斯低通滤波器（Q=0.707).</p>
<h3 id="1-SK高通滤波器"><a href="#1-SK高通滤波器" class="headerlink" title="1.SK高通滤波器"></a>1.SK高通滤波器</h3><p>SK高通滤波器的结构和低通滤波器类似，只是这里电阻和电容的位置互换；</p>
<p>如图：</p>
<p><img src="https://gitee.com/liang-xiqing/Picgo/raw/master/img/20220424194649.png"></p>
<p>同样的，根据电路的要求如品质因数和截止频率可以确定电阻和电容的阻值。截止频率和品质因数与电阻电容的关系如下：</p>
<p><img src="https://gitee.com/liang-xiqing/Picgo/raw/master/img/20220424194813.png"></p>
<p>这里只介绍简易型SK高通滤波器，四元件巴特沃斯型，电阻为二倍关系，电容为查表值：</p>
<p><img src="https://gitee.com/liang-xiqing/Picgo/raw/master/img/20220424195019.png"></p>
<p>结果如下：</p>
<p><img src="https://gitee.com/liang-xiqing/Picgo/raw/master/img/20220424195212.png"></p>

      
      
    </div>
    
    <div class="article-info article-info-index">
      
      

      
    <div class="article-tag tagcloud">
        <ul class="article-tag-list" itemprop="keywords"><li class="article-tag-list-item"><a class="article-tag-list-link" href="/tags/%E6%BB%A4%E6%B3%A2%E5%99%A8/" rel="tag">滤波器</a></li></ul>
    </div>

      
      <div class="clearfix"></div>
    </div>
    
  </div>
  
</article>









  
    <article id="post-运算放大器" class="article article-type-post" itemscope itemprop="blogPost">
  
    <div class="article-meta">
      <a href="/2022/03/04/%E8%BF%90%E7%AE%97%E6%94%BE%E5%A4%A7%E5%99%A8/" class="article-date">
      <time datetime="2022-03-04T07:18:43.000Z" itemprop="datePublished">2022-03-04</time>
</a>
    </div>
  
  <div class="article-inner">
    
      <input type="hidden" class="isFancy" />
    
    
      <header class="article-header">
        
  
    <h1 itemprop="name">
      <a class="article-title" href="/2022/03/04/%E8%BF%90%E7%AE%97%E6%94%BE%E5%A4%A7%E5%99%A8/">运算放大器</a>
    </h1>
  

      </header>
      
    
    <div class="article-entry" itemprop="articleBody">
      
          
        <meta name="referrer" content="no-referrer">

<h1 id="运算放大器"><a href="#运算放大器" class="headerlink" title="运算放大器"></a>运算放大器</h1><h2 id="1-噪声"><a href="#1-噪声" class="headerlink" title="1.噪声"></a>1.噪声</h2><p>运放的噪声来源有很多，如：热噪声，散粒噪声等等；但是最为常见的噪声根源有两类：一类是1/f噪声，其电能力密度曲线随着频率的上升而下降；一类产生白噪声，或者叫平坦噪声，其电能力密度曲线是一条直线，与频率无关。</p>
<p>两者的电能力密度图如图所示：<br><img src="https://gitee.com/liang-xiqing/Picgo/raw/master/img/20220304152455.png" alt="电能力密度图"><br>在一定的频率范围内，我们都可以通过上图计算出两类噪声的有效值。</p>
<p>两种噪声有效值的计算方法，其重点在于得到C和K两个值。<br><img src="https://gitee.com/liang-xiqing/Picgo/raw/master/img/20220304152728.png"><br>可以根据厂家给的数据手册来查找C和K的值，噪声频率较小的时候1/f作用较为明显；噪声频率较大的时候白噪声作用较为明显。</p>
<p><strong>K的确定：</strong>（1）读图法，读厂家给的数据手册；（2）数据法，多数数据手册会在指标表里以en为标示给出；</p>
<p><strong>C的确定：</strong>（1）曲线涵盖1Hz，通过读图得到1Hz时的噪声值，然后有和噪声值和白噪声值可以算出1/f的C的值；（2）曲线不涵盖1Hz：<img src="https://gitee.com/liang-xiqing/Picgo/raw/master/img/20220304153558.png"><br>（3）通过转角频率，有些厂家会给出转角频率，转角频率就是处于这个频率下，1/f噪声电能力密度等于白噪声电能力密度等于K，再根据1/f噪声的定义可以得出C。</p>
<p><strong>噪声有效值与峰峰值的关系:</strong> 峰峰值等于有效值的6.6倍。</p>
<p><strong>实际运放噪声的计算：</strong> 实际运放的噪声来源有电压源噪声，电流源噪声，电阻热噪声。<br>方法如下：<br>（1） 获得等效带宽 fb，确定 fa，可能是 0.1Hz 或者 0.01Hz。 </p>
<p>（2） 根据前述方法，结合带宽计算运放等效输入噪声电压 UN_I；</p>
<p>（3） 结合带宽计算各个电阻的热噪声 UN_Ri；（式 2-18） </p>
<p>（4） 查找数据手册，获得等效输入电流噪声的关键参数 CI 和 KI，结合带宽计算等效输入电流噪声 IN_1 和 IN_2； </p>
<p>（5） 以上述 3 类共 7 个源，分别计算在输出端的结果 UOm，m 代表不同的源。其中上标 O 代表该噪声源在运放输出端呈现的噪声电压有效值。</p>
<p> (6) 对各个 UOm实施平方式叠加，即为最终输出噪声。</p>
<p><strong>电阻的热噪声计算：</strong> 电阻噪声计算较为复杂，包含热噪声、接触噪声和散粒噪声等。在特殊电路比如音响放大电路中，要考虑很多问题来减少噪声，比如降低均值电流、增大电阻体积等。但是在运放电路中，一般仅考虑电阻的热噪声。<br><img src="https://gitee.com/liang-xiqing/Picgo/raw/master/img/20220304161218.png"></p>

      
      
    </div>
    
    <div class="article-info article-info-index">
      
      

      
    <div class="article-tag tagcloud">
        <ul class="article-tag-list" itemprop="keywords"><li class="article-tag-list-item"><a class="article-tag-list-link" href="/tags/%E8%BF%90%E7%AE%97%E6%94%BE%E5%A4%A7%E5%99%A8/" rel="tag">运算放大器</a></li></ul>
    </div>

      
      <div class="clearfix"></div>
    </div>
    
  </div>
  
</article>









  
    <article id="post-晶体管基础" class="article article-type-post" itemscope itemprop="blogPost">
  
    <div class="article-meta">
      <a href="/2022/01/18/%E6%99%B6%E4%BD%93%E7%AE%A1%E5%9F%BA%E7%A1%80/" class="article-date">
      <time datetime="2022-01-18T01:37:43.000Z" itemprop="datePublished">2022-01-18</time>
</a>
    </div>
  
  <div class="article-inner">
    
      <input type="hidden" class="isFancy" />
    
    
      <header class="article-header">
        
  
    <h1 itemprop="name">
      <a class="article-title" href="/2022/01/18/%E6%99%B6%E4%BD%93%E7%AE%A1%E5%9F%BA%E7%A1%80/">晶体管基础</a>
    </h1>
  

      </header>
      
    
    <div class="article-entry" itemprop="articleBody">
      
          
        <meta name="referrer" content="no-referrer">

<h1 id="信号失真分析"><a href="#信号失真分析" class="headerlink" title="信号失真分析"></a>信号失真分析</h1><h2 id="1-大信号失真"><a href="#1-大信号失真" class="headerlink" title="1.大信号失真"></a>1.大信号失真</h2><p>因信号的赋值过大，使得输入信号在正峰值或者负峰值的时候，会使得晶体管进入饱和区或者进入截止区；另一个原因是由于信号幅值过大，使得输入伏安特性曲线中的非线性部分完全显现出来，造成非线性失真。</p>
<h2 id="2-饱和失真和截止失真"><a href="#2-饱和失真和截止失真" class="headerlink" title="2.饱和失真和截止失真"></a>2.饱和失真和截止失真</h2><p>如图：</p>
<p><img src="https://gitee.com/liang-xiqing/Picgo/raw/master/img/20220118095210.png"></p>
<p>当输出信号幅值超过电压时，使得集电极没有电流（基极也没有电流），发生截至失真；而当输出信号幅值为负值时（Uceq&lt;0.3v），发生饱和失真。</p>
<p><strong>失真电压裕度</strong>：我们把静态集电极-射极电压到截止失真的电压差值称为截至失真电压裕度；到饱和失真的电压差值称为饱和电压裕度，两者的最小值称为失真电压裕度。<strong>注意</strong>：不一定是饱和电压裕度一定小于截止电压裕度，这和静态工作点有关，所以要根据具体电路来分析，看是先发生什么类型的失真。</p>
<p><img src="https://gitee.com/liang-xiqing/Picgo/raw/master/img/20220118100138.png"></p>
<p>可以根据上图加深对截止失真和饱和失真的理解。</p>
<h2 id="3-T型偏置电路"><a href="#3-T型偏置电路" class="headerlink" title="3.T型偏置电路"></a>3.T型偏置电路</h2><p><img src="https://gitee.com/liang-xiqing/Picgo/raw/master/img/20220226192918.png" alt="T型偏置电路"></p>
<p>分析T偏置电路：静态通路分析：</p>
<p><img src="https://gitee.com/liang-xiqing/Picgo/raw/master/img/20220226193544.png"></p>
<p>动态通路分析：</p>
<p><img src="https://gitee.com/liang-xiqing/Picgo/raw/master/img/20220226193656.png"></p>
<p>可知：与两电阻分压电路相比，T型偏置电路更加灵活；当要求基极电压较小切输入电阻较大的时候，电阻分压电路则需要更大的电阻，而T型偏置电路则是两电阻并联加上一个电阻值，同时基极电压任然是两电阻分压值，输入电阻与基极电压相互独立；同时图中的电容C4（去耦电容），可以减少电源电压的噪声对输入端的影响。</p>
<h2 id="4-MOSFET"><a href="#4-MOSFET" class="headerlink" title="4.MOSFET"></a>4.MOSFET</h2><p><img src="https://gitee.com/liang-xiqing/Picgo/raw/master/img/20220226194451.png"><br>由于MOSFET的绝缘栅结构，没有输入电流，所以只有转移伏安特性曲线和输出伏安特性曲线，所以求解电路状态主要在于Ugs，Id；</p>
<p><img src="https://gitee.com/liang-xiqing/Picgo/raw/master/img/20220226194742.png"></p>
<p>一般阈值电压（开启电压），和K值一般都会给。<br>工作状态分类：</p>
<p><img src="https://gitee.com/liang-xiqing/Picgo/raw/master/img/20220226195826.png"></p>
<h2 id="5-电流镜基本原理"><a href="#5-电流镜基本原理" class="headerlink" title="5.电流镜基本原理"></a>5.电流镜基本原理</h2><p>电流镜的基本原理其核心是两个基极连在一起，两个发射极连在一起，以迫使两者具有相同的Ube，以使其Ib相等，进而保证Ic相等。</p>
<p><img src="https://gitee.com/liang-xiqing/Picgo/raw/master/img/20220226202328.png"></p>
<p>通过对晶体管的性质可得：</p>
<p><img src="https://gitee.com/liang-xiqing/Picgo/raw/master/img/20220226202650.png"></p>
<p>但是实际的电流镜的输出并不是按照比例预期的，和理论计算存在较大的误差，原因在于：厄利电压。</p>
<p><img src="https://gitee.com/liang-xiqing/Picgo/raw/master/img/20220226203701.png"></p>
<p><img src="https://gitee.com/liang-xiqing/Picgo/raw/master/img/20220226203824.png"></p>
<p>输出端的初始电压和Uce对集电极的电流（输出电流）都有影响。对于一个确定的伏安特性曲线，可以根据厄利电压和集电极射极饱和电压以及理想输出集电极电流，来确定实际的输出电流。</p>

      
      
    </div>
    
    <div class="article-info article-info-index">
      
      

      
    <div class="article-tag tagcloud">
        <ul class="article-tag-list" itemprop="keywords"><li class="article-tag-list-item"><a class="article-tag-list-link" href="/tags/%E6%99%B6%E4%BD%93%E7%AE%A1%E5%9F%BA%E7%A1%80/" rel="tag">晶体管基础</a></li></ul>
    </div>

      
      <div class="clearfix"></div>
    </div>
    
  </div>
  
</article>









  
    <article id="post-C语言-左值和右值" class="article article-type-post" itemscope itemprop="blogPost">
  
    <div class="article-meta">
      <a href="/2021/09/20/C%E8%AF%AD%E8%A8%80-%E5%B7%A6%E5%80%BC%E5%92%8C%E5%8F%B3%E5%80%BC/" class="article-date">
      <time datetime="2021-09-20T15:13:43.000Z" itemprop="datePublished">2021-09-20</time>
</a>
    </div>
  
  <div class="article-inner">
    
      <input type="hidden" class="isFancy" />
    
    
      <header class="article-header">
        
  
    <h1 itemprop="name">
      <a class="article-title" href="/2021/09/20/C%E8%AF%AD%E8%A8%80-%E5%B7%A6%E5%80%BC%E5%92%8C%E5%8F%B3%E5%80%BC/">C语言-左值和右值</a>
    </h1>
  

      </header>
      
    
    <div class="article-entry" itemprop="articleBody">
      
          
        <meta name="referrer" content="no-referrer">

<h1 id="C语言-左值和右值"><a href="#C语言-左值和右值" class="headerlink" title="C语言-左值和右值"></a>C语言-左值和右值</h1><p><strong>左值：</strong>可以出现在赋值符号左边的东西；</p>
<p><strong>右值：</strong>可以出现在赋值符号右边的东西。</p>
<p>注意：左值并不是只能是变量，也可以是表达式，如：<code>a[b+10] = 0;</code>是否可以作为左值，主要在于赋值符号左边是否标识了一特定的位置。</p>

      
      
    </div>
    
    <div class="article-info article-info-index">
      
      

      
    <div class="article-tag tagcloud">
        <ul class="article-tag-list" itemprop="keywords"><li class="article-tag-list-item"><a class="article-tag-list-link" href="/tags/C%E8%AF%AD%E8%A8%80-%E5%B7%A6%E5%80%BC%E5%92%8C%E5%8F%B3%E5%80%BC/" rel="tag">C语言-左值和右值</a></li></ul>
    </div>

      
      <div class="clearfix"></div>
    </div>
    
  </div>
  
</article>









  
    <article id="post-C语言-位的操纵" class="article article-type-post" itemscope itemprop="blogPost">
  
    <div class="article-meta">
      <a href="/2021/09/05/C%E8%AF%AD%E8%A8%80-%E4%BD%8D%E7%9A%84%E6%93%8D%E7%BA%B5/" class="article-date">
      <time datetime="2021-09-05T03:16:43.000Z" itemprop="datePublished">2021-09-05</time>
</a>
    </div>
  
  <div class="article-inner">
    
      <input type="hidden" class="isFancy" />
    
    
      <header class="article-header">
        
  
    <h1 itemprop="name">
      <a class="article-title" href="/2021/09/05/C%E8%AF%AD%E8%A8%80-%E4%BD%8D%E7%9A%84%E6%93%8D%E7%BA%B5/">C语言-位的操纵</a>
    </h1>
  

      </header>
      
    
    <div class="article-entry" itemprop="articleBody">
      
          
        <meta name="referrer" content="no-referrer">

<h1 id="C语言-位的操纵"><a href="#C语言-位的操纵" class="headerlink" title="C语言-位的操纵"></a>C语言-位的操纵</h1><p>表达式假定变量bit_number为一整型值，它的范围是从0至整型值的位数减1，并且整型值的位从右向左计数；</p>
<p>第一个例子：把指定的位设置为1：</p>
<p><code>vuale = vuale | 1 &lt;&lt; bit_number;</code></p>
<p>写一个例子：把指定的位清0：</p>
<p><code>vuale = vuale &amp; ~(1 &lt;&lt; bit_number);</code></p>
<p>对指定的位进行测试，如果该位已经被设置为1，则表达式的结果为非零值：</p>
<p><code>vuale &amp; 1 &lt;&lt; bit_number;</code></p>

      
      
    </div>
    
    <div class="article-info article-info-index">
      
      

      
    <div class="article-tag tagcloud">
        <ul class="article-tag-list" itemprop="keywords"><li class="article-tag-list-item"><a class="article-tag-list-link" href="/tags/C%E8%AF%AD%E8%A8%80-%E4%BD%8D%E7%9A%84%E6%93%8D%E7%BA%B5/" rel="tag">C语言-位的操纵</a></li></ul>
    </div>

      
      <div class="clearfix"></div>
    </div>
    
  </div>
  
</article>









  
    <article id="post-C语言-static关键字" class="article article-type-post" itemscope itemprop="blogPost">
  
    <div class="article-meta">
      <a href="/2021/08/25/C%E8%AF%AD%E8%A8%80-static%E5%85%B3%E9%94%AE%E5%AD%97/" class="article-date">
      <time datetime="2021-08-25T07:17:43.000Z" itemprop="datePublished">2021-08-25</time>
</a>
    </div>
  
  <div class="article-inner">
    
      <input type="hidden" class="isFancy" />
    
    
      <header class="article-header">
        
  
    <h1 itemprop="name">
      <a class="article-title" href="/2021/08/25/C%E8%AF%AD%E8%A8%80-static%E5%85%B3%E9%94%AE%E5%AD%97/">C语言-static关键字</a>
    </h1>
  

      </header>
      
    
    <div class="article-entry" itemprop="articleBody">
      
          
        <meta name="referrer" content="no-referrer">

<h1 id="C语言-static关键字"><a href="#C语言-static关键字" class="headerlink" title="C语言-static关键字"></a>C语言-static关键字</h1><ul>
<li>当它用于函数定义或者用于代码块之外的变量声明时，static关键字用于修改标识符的链接属性，从external改为internal，但标识符发存储类型和作用域不受影响，用这种方式声明的函数或变量只能在声明它们的源文件中访问；</li>
<li>当它用于代码块内部的变量声明时，static关键字用于修改变量的存储类型，从自动变量修改为静态变量，但是变量的链接属性和作用域不受影响。用这种方式声明的变量在程序执行之前创建，并在程序的整个执行期间一直存在，而不是每次在代码块开始执行时创建，在代码块执行完毕后销毁。</li>
</ul>

      
      
    </div>
    
    <div class="article-info article-info-index">
      
      

      
    <div class="article-tag tagcloud">
        <ul class="article-tag-list" itemprop="keywords"><li class="article-tag-list-item"><a class="article-tag-list-link" href="/tags/C%E8%AF%AD%E8%A8%80-static%E5%85%B3%E9%94%AE%E5%AD%97/" rel="tag">C语言-static关键字</a></li></ul>
    </div>

      
      <div class="clearfix"></div>
    </div>
    
  </div>
  
</article>









  
    <article id="post-C语言-typedef" class="article article-type-post" itemscope itemprop="blogPost">
  
    <div class="article-meta">
      <a href="/2021/08/24/C%E8%AF%AD%E8%A8%80-typedef/" class="article-date">
      <time datetime="2021-08-24T12:28:43.000Z" itemprop="datePublished">2021-08-24</time>
</a>
    </div>
  
  <div class="article-inner">
    
      <input type="hidden" class="isFancy" />
    
    
      <header class="article-header">
        
  
    <h1 itemprop="name">
      <a class="article-title" href="/2021/08/24/C%E8%AF%AD%E8%A8%80-typedef/">C语言-typedef</a>
    </h1>
  

      </header>
      
    
    <div class="article-entry" itemprop="articleBody">
      
          
        <meta name="referrer" content="no-referrer">

<h1 id="C语言-typedef"><a href="#C语言-typedef" class="headerlink" title="C语言-typedef"></a>C语言-typedef</h1><p>typedef允许为各种数据类型定义新名字，其声明写法和普通的声明基本相同，只要把typedef这个关键字放在声明的前面即可。</p>
<p>例如：<code>typedef char *ptr_to_char</code>这个声明将ptr_to_char声明为一个指向字符的指针</p>
<p><code>ptr_to_char a;</code>声明a是一个指向字符的指针，使用typedef声明类型可以减少使声明变得又臭又长的危险。</p>
<p>注意：创建新的类型名应该用typedef而不是#define，后者无法正确地处理指针类型，例如：</p>
<figure class="highlight c"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta">#<span class="meta-keyword">define</span> d_ptr_to_char char*</span></span><br><span class="line">d_ptr_to_char a,b;</span><br></pre></td></tr></table></figure>

<p>这里正确地声明了a，但是b却是被声明为一个字符。在定义更为复杂的类型名字时，如函数指针或指向数组的指针，使用typedef更为合适。</p>

      
      
    </div>
    
    <div class="article-info article-info-index">
      
      

      
    <div class="article-tag tagcloud">
        <ul class="article-tag-list" itemprop="keywords"><li class="article-tag-list-item"><a class="article-tag-list-link" href="/tags/C%E8%AF%AD%E8%A8%80-typedef/" rel="tag">C语言-typedef</a></li></ul>
    </div>

      
      <div class="clearfix"></div>
    </div>
    
  </div>
  
</article>









  
    <article id="post-C语言的基本概念" class="article article-type-post" itemscope itemprop="blogPost">
  
    <div class="article-meta">
      <a href="/2021/05/30/C%E8%AF%AD%E8%A8%80%E7%9A%84%E5%9F%BA%E6%9C%AC%E6%A6%82%E5%BF%B5/" class="article-date">
      <time datetime="2021-05-30T14:32:43.000Z" itemprop="datePublished">2021-05-30</time>
</a>
    </div>
  
  <div class="article-inner">
    
      <input type="hidden" class="isFancy" />
    
    
      <header class="article-header">
        
  
    <h1 itemprop="name">
      <a class="article-title" href="/2021/05/30/C%E8%AF%AD%E8%A8%80%E7%9A%84%E5%9F%BA%E6%9C%AC%E6%A6%82%E5%BF%B5/">C语言的基本概念</a>
    </h1>
  

      </header>
      
    
    <div class="article-entry" itemprop="articleBody">
      
          
        <meta name="referrer" content="no-referrer">

<h2 id="基本概念"><a href="#基本概念" class="headerlink" title="基本概念"></a>基本概念</h2><h3 id="1-环境"><a href="#1-环境" class="headerlink" title="1. 环境"></a>1. 环境</h3><p>在ANSI C的任何一种实现中，存在两种不同的环境：翻译环境，执行环境。<br>翻译环境：源代码被转换为可执行的机器指令。执行环境：用于实际执行代码。这两种环境不必位于同一台机器上。</p>
<h4 id="1-1-翻译"><a href="#1-1-翻译" class="headerlink" title="1.1 翻译"></a>1.1 翻译</h4><p>翻译：组成程序的源文件（一个或者多个）通过编译转换为<strong>目标代码</strong>，然后各个目标文件由<strong>链接器</strong>捆绑在一起，形成单一而完整的可执行程序。连接器同时会引入标准C函数库中任何被该程序所用到的函数，而且它也可以搜索程序员个人的程序库，将其中需要使用的函数也链接带程序中。<br>如图：</p>
<p><img src="images/%E7%BC%96%E8%AF%91%E8%BF%87%E7%A8%8B.png" alt="编译过程"></p>
<p>一.文件名约定<br>大多数环境都存在必须遵守的文件名约定。C源代码通常保存于以.c扩展名的文件中，头文件则为.h。目标文件名在不同环境可能有不同的约定：UNIX系统中扩展名为.o，在MS-DOS系统中扩展名为.obj。<br>二.编译和链接</p>
<p>用于编译和链接C程序的特定命令在不同的系统中各不相同</p>
<p>在绝大多数的UNIX系统中，C编译器被称为cc，它可以用不同的方法来调用；</p>
<ol>
<li><p>编译并链接一个完全包含于一个源文件的C程序：</p>
<figure class="highlight c"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">cc program.c</span><br></pre></td></tr></table></figure>

<p>命令执行完之后会产生一个a.out的可执行文件（中间会产生一个名为program.o的目标文件，但是在链接过程完成后会被删除）</p>
</li>
<li><p>编译并链接几个C源文件</p>
<figure class="highlight c"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">cc main.c sort.c lookup.c</span><br></pre></td></tr></table></figure></li>
<li><p>编译一个C源文件，并把它和现存的目标文件链接在一起</p>
<figure class="highlight c"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">cc main.o lookup.o sort.c</span><br></pre></td></tr></table></figure></li>
<li><p>编译单个C源文件，并产生一个目标文件，以后再进行链接：</p>
<figure class="highlight c"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">cc -c program.c</span><br></pre></td></tr></table></figure></li>
<li><p>编译几个C源文件，并为每个文件产生一个目标文件：</p>
<figure class="highlight c"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">cc -c main.v sort.c lookup.c</span><br></pre></td></tr></table></figure></li>
<li><p>链接一个目标文件：</p>
<figure class="highlight c"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">cc main.o sort.o lookup.o</span><br></pre></td></tr></table></figure></li>
</ol>
<p>在产生可执行文件的命令均可以加上</p>
<p>​    “-o name” :  使编译器把可执行程序保存在“name”文件里</p>
<h4 id="1-2执行"><a href="#1-2执行" class="headerlink" title="1.2执行"></a>1.2执行</h4><p>程序的执行也需要经历几个阶段：</p>
<ol>
<li>程序载入到内存中（在宿主环境中，由操作系统执行；独立环境中需要手工安排）</li>
<li>在操作系统中，通常一个小型的<strong>启动程序</strong>与程序链接在一起，调用main函数（它负责处理一系列日常事务，如：收集命名行参数以便程序访问）</li>
<li>执行程序代码。（在绝大多数的机器里，程序将使用一个运行时<strong>堆栈</strong>，它用于存储函数的局部变量和返回地址。程序同时也可以使用<strong>静态内存</strong>，存储于静态内存中的变量在程序的整个执行过程中将一直保留它们的值。）</li>
<li>程序的终止。终止有如下情况：main函数返回；启动程序关闭可能使用过但并未显示关闭的文件；用户按下break键；执行过程中出现错误而中断。</li>
</ol>
<h3 id="2-词法规则"><a href="#2-词法规则" class="headerlink" title="2.词法规则"></a>2.词法规则</h3><p>一个ANSI C程序由声明和函数组成。函数定义了需要执行的工作，而声明则描述了函数和函数将要操作的数据类型，注释可以散布于源文件的各个地方。</p>
<h4 id="2-1-字符"><a href="#2-1-字符" class="headerlink" title="2.1 字符"></a>2.1 字符</h4><p>规定字符集必须包括英语所以的大写和小写字母，数字0到9，以及下面这些符号：</p>
<p><img src="images/%E5%AD%97%E7%AC%A6.png" alt="字符"></p>
<p>换行符用于标志源代码每一行的结束，也用于标志每个输入行的末尾，也可以是一串字符（被作为单个字符处理）</p>
<p><strong>三字母词</strong>：几个字符的序列合起来表示另一个字符。（可在缺少一些必需字符的字符集上实现）</p>
<p><img src="images/%E4%B8%89%E5%AD%97%E6%AF%8D%E8%AF%8D.png" alt="三字母词"></p>
<p>两个问号开头再尾随一个字符一般不会出现在其他表达形式中，所以把三字母词用这种形式来表示，这样就不致引起误解。</p>
<p><img src="images/%E8%AD%A6%E5%91%8A.png" alt="警告"></p>
<p><strong>转义序列</strong>或<strong>字符转义</strong>：解决无法再字符串常量内部包含某些字符的问题。</p>
<p>? 在书写连续多个问号时使用，防止它们被解释为三字母词；</p>
<p>\“ 用于表示一个字符串常量内部的双引号；</p>
<p>\‘ 用于表示字符串常量 ’；</p>
<p>\\ 用于表示一个反斜杠，防止它被解释为一个转义序列符。</p>
<p>转义符列举：</p>
<p><img src="images/%E8%BD%AC%E4%B9%89%E7%AC%A6.png" alt="转义符"></p>
<h4 id="2-2-注释"><a href="#2-2-注释" class="headerlink" title="2.2 注释"></a>2.2 注释</h4><p>C语言的注释以字符/*开始，以字符 */结束。</p>
<p>一个注释可以跨多行但是不能嵌套。注释会被预处理器拿掉，取而代之的是一个空格。</p>
<h4 id="2-3-标识符"><a href="#2-3-标识符" class="headerlink" title="2.3 标识符"></a>2.3 标识符</h4><p>标识符就是变量，函数，类型等的名字。它们由大小写字母，数字和下划线组成，但不能以数字开头，同时对大小写敏感，无长度限制（但标准允许编译器忽略第31个字符以后的字符）。</p>
<p>C语言<strong>关键字</strong>是被保留的，不能作为标识符使用：</p>
<p><img src="images/%E5%85%B3%E9%94%AE%E5%AD%97.png" alt="关键字"></p>
<h4 id="2-5-程序的形式"><a href="#2-5-程序的形式" class="headerlink" title="2.5 程序的形式"></a>2.5 程序的形式</h4><p>一个C程序可能保存于一个或多个源文件中，每个函数都必须完整地出现于同一个源文件中。</p>
<h3 id="3-程序风格"><a href="#3-程序风格" class="headerlink" title="3.程序风格"></a>3.程序风格</h3><p>不良的风格和不良的文档是软件生产和维护代价高昂的两个重要原因。良好的编程风格能够大大提高程序的可读性，直接结果就是程序更容易正确运行，间接结果是它们更容易维护，这将节省大笔资金成本。</p>

      
      
    </div>
    
    <div class="article-info article-info-index">
      
      

      
    <div class="article-tag tagcloud">
        <ul class="article-tag-list" itemprop="keywords"><li class="article-tag-list-item"><a class="article-tag-list-link" href="/tags/C%E8%AF%AD%E8%A8%80%E7%9A%84%E5%8A%A0%E6%B7%B1-%E3%80%8AC%E5%92%8C%E6%8C%87%E9%92%88%E3%80%8B/" rel="tag">C语言的加深--《C和指针》</a></li></ul>
    </div>

      
      <div class="clearfix"></div>
    </div>
    
  </div>
  
</article>









  
    <article id="post-hello-world" class="article article-type-post" itemscope itemprop="blogPost">
  
    <div class="article-meta">
      <a href="/2021/05/27/hello-world/" class="article-date">
      <time datetime="2021-05-27T06:26:55.667Z" itemprop="datePublished">2021-05-27</time>
</a>
    </div>
  
  <div class="article-inner">
    
      <input type="hidden" class="isFancy" />
    
    
      <header class="article-header">
        
  
    <h1 itemprop="name">
      <a class="article-title" href="/2021/05/27/hello-world/">Hello World</a>
    </h1>
  

      </header>
      
    
    <div class="article-entry" itemprop="articleBody">
      
          
        <p>Welcome to <a target="_blank" rel="noopener" href="https://hexo.io/">Hexo</a>! This is your very first post. Check <a target="_blank" rel="noopener" href="https://hexo.io/docs/">documentation</a> for more info. If you get any problems when using Hexo, you can find the answer in <a target="_blank" rel="noopener" href="https://hexo.io/docs/troubleshooting.html">troubleshooting</a> or you can ask me on <a target="_blank" rel="noopener" href="https://github.com/hexojs/hexo/issues">GitHub</a>.</p>
<h2 id="Quick-Start"><a href="#Quick-Start" class="headerlink" title="Quick Start"></a>Quick Start</h2><h3 id="Create-a-new-post"><a href="#Create-a-new-post" class="headerlink" title="Create a new post"></a>Create a new post</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">$ hexo new <span class="string">&quot;My New Post&quot;</span></span><br></pre></td></tr></table></figure>

<p>More info: <a target="_blank" rel="noopener" href="https://hexo.io/docs/writing.html">Writing</a></p>
<h3 id="Run-server"><a href="#Run-server" class="headerlink" title="Run server"></a>Run server</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">$ hexo server</span><br></pre></td></tr></table></figure>

<p>More info: <a target="_blank" rel="noopener" href="https://hexo.io/docs/server.html">Server</a></p>
<h3 id="Generate-static-files"><a href="#Generate-static-files" class="headerlink" title="Generate static files"></a>Generate static files</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">$ hexo generate</span><br></pre></td></tr></table></figure>

<p>More info: <a target="_blank" rel="noopener" href="https://hexo.io/docs/generating.html">Generating</a></p>
<h3 id="Deploy-to-remote-sites"><a href="#Deploy-to-remote-sites" class="headerlink" title="Deploy to remote sites"></a>Deploy to remote sites</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">$ hexo deploy</span><br></pre></td></tr></table></figure>

<p>More info: <a target="_blank" rel="noopener" href="https://hexo.io/docs/one-command-deployment.html">Deployment</a></p>

      
      
    </div>
    
    <div class="article-info article-info-index">
      
      

      
      
      <div class="clearfix"></div>
    </div>
    
  </div>
  
</article>









  
  
</div>
      <footer id="footer">
    <div class="outer">
        <div id="footer-info">
            <div class="footer-left">
                &copy; 2023 DUO
            </div>
            <div class="footer-right">
                <a href="http://hexo.io/" target="_blank">Hexo</a>  Theme <a href="http://bestwing.me" target="_blank">Sw'blog</a> by Swing
            </div>
        </div>
        
            <div class="visit">
                
                    <span id="busuanzi_container_site_pv" style='display:none'>
                        <span id="site-visit" >海贼到访数: 
                            <span id="busuanzi_value_site_uv"></span>
                        </span>
                    </span>
                
                
                    <span>, </span>
                
                
                    <span id="busuanzi_container_page_pv" style='display:none'>
                        <span id="page-visit">本页阅读量: 
                            <span id="busuanzi_value_page_pv"></span>
                        </span>
                    </span>
                
            </div>
        
    </div>
</footer>

    </div>
    
<script src="https://7.url.cn/edu/jslib/comb/require-2.1.6,jquery-1.9.1.min.js"></script>


<script src="/js/main.js"></script>


    <script>
        $(document).ready(function() {
            var backgroundnum = 24;
            var backgroundimg = "url(/background/bg-x.jpg)".replace(/x/gi, Math.ceil(Math.random() * backgroundnum));
            $("#mobile-nav").css({"background-image": backgroundimg,"background-size": "cover","background-position": "center"});
            $(".left-col").css({"background-image": backgroundimg,"background-size": "cover","background-position": "center"});
        })
    </script>





<div class="scroll" id="scroll">
    <a href="#"><i class="fa fa-arrow-up"></i></a>
    <a href="#comments"><i class="fa fa-comments-o"></i></a>
    <a href="#footer"><i class="fa fa-arrow-down"></i></a>
</div>
<script>
    $(document).ready(function() {
        if ($("#comments").length < 1) {
            $("#scroll > a:nth-child(2)").hide();
        };
    })
</script>

<script async src="https://dn-lbstatics.qbox.me/busuanzi/2.3/busuanzi.pure.mini.js">
</script>

  <script language="javascript">
    $(function() {
        $("a[title]").each(function() {
            var a = $(this);
            var title = a.attr('title');
            if (title == undefined || title == "") return;
            a.data('title', title).removeAttr('title').hover(

            function() {
                var offset = a.offset();
                $("<div id=\"anchortitlecontainer\"></div>").appendTo($("body")).html(title).css({
                    top: offset.top - a.outerHeight() - 15,
                    left: offset.left + a.outerWidth()/2 + 1
                }).fadeIn(function() {
                    var pop = $(this);
                    setTimeout(function() {
                        pop.remove();
                    }, pop.text().length * 800);
                });
            }, function() {
                $("#anchortitlecontainer").remove();
            });
        });
    });
</script>


    <script type="text/javascript">
      window.onload = function(){
        document.getElementById("search").onclick = function(){
            console.log("search")
            search();
        }
      }
      function search(){
        (function(w,d,t,u,n,s,e){w['SwiftypeObject']=n;w[n]=w[n]||function(){
        (w[n].q=w[n].q||[]).push(arguments);};s=d.createElement(t);
        e=d.getElementsByTagName(t)[0];s.async=1;s.src=u;e.parentNode.insertBefore(s,e);
        })(window,document,'script','//s.swiftypecdn.com/install/v2/st.js','_st');

        _st('install','A1Pz-LKMXbrzcFg2FWi6','2.0.0');
      }
    </script>

  </div>
</body>
</html>